package org.seedltd.upms.model.sys.vo;

import lombok.Getter;
import lombok.Setter;
import org.seedltd.core.jackson.annotation.Sensitive;
import org.seedltd.core.jackson.annotation.ToUserJsonString;
import org.seedltd.upms.enums.UserEnableStatus;

import java.util.Date;
import java.util.Set;

/**
 * 系统用户
 *
 * @author laizuan
 * @date 2019/10/17
 */
@Getter
@Setter
public class SysUserVO {

    /**
     * 用户主键
     */
    private Long userId;

    /**
     * 公司主键
     */
    private Long companyId;

    /**
     * 登入账户
     */
    private String loginName;

    /**
     * 用户名称
     */
    private String nickName;

    /**
     * 手机号
     */

    private String mobile;

    /**
     * 脱敏手机号
     */
    @Sensitive(value = Sensitive.SensitiveType.MOBILE_PHONE)
    private String sensitiveMobile;

    /**
     * 邮箱
     */
    private String email;


    /**
     * 脱敏邮箱
     */
    @Sensitive(value = Sensitive.SensitiveType.EMAIL)
    private String sensitiveEmail;

    /**
     * 最后 一次登入时间
     */
    private Date lastLoginTime;

    /**
     * 启用状态(1启用 0禁用 2注销)
     */
    private UserEnableStatus enabled;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 创建人主键
     */
    @ToUserJsonString
    private Long createBy;

    /**
     * 修改人主键
     */
    @ToUserJsonString
    private Long updateBy;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 用户角色集合
     */
    private Set<Long> roleIdList;

    /**
     * 部门主键
     */
    private Set<Long> deptIdList;
}
